﻿using System.IO;
using FarmerJoe.Settings;
using Styx.Helpers;

namespace FarmerJoe.ClassSettings
{
    public class DruidSettings : Styx.Helpers.Settings
    {
        //public static DruidSettings Instance = new DruidSettings();
        public DruidSettings() : base(Path.Combine(FpswareSettings.SettingsPath, "Druid.xml")) { }

        [Setting, DefaultValue("... never")]
        public string ForceFacingTarget { get; set; }

        [Setting, DefaultValue(45)]
        public int RestMana { get; set; }

        [Setting, DefaultValue(45)]
        public int RestHealth { get; set; }

        [Setting, DefaultValue(35)]
        public int InnervateMana { get; set; }

        [Setting, DefaultValue("... always")]
        public string TravelForm { get; set; }

        [Setting, DefaultValue("25")]
        public string TravelFormMinDistance { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string NonCombatHealing { get; set; }

        [Setting, DefaultValue("... always")]
        public string MarkOfTheWild { get; set; }

        [Setting, DefaultValue(70)]
        public int NonCombatHealingTouchHealth { get; set; }

        [Setting, DefaultValue(85)]
        public int NonCombatRejuvenationHealth { get; set; }
        

        [Setting, DefaultValue(85)]
        public int FeralNaturesVigilHealth { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string FeralNaturesVigil { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string FeralNaturesVigilWhen { get; set; }



        [Setting, DefaultValue("... always")]
        public string CCControlledMovement { get; set; }

        [Setting, DefaultValue("... always")]
        public string CCControlledTargeting { get; set; }

        [Setting, DefaultValue("... always")]
        public string WaitForResSickness { get; set; }

        [Setting, DefaultValue("... always")]
        public string AllowLagTollerance { get; set; }

        [Setting, DefaultValue("... never")]
        public string TimeToDeathCheck { get; set; }

        [Setting, DefaultValue("... never")]
        public string Trinket1 { get; set; }

        [Setting, DefaultValue("... never")]
        public string Trinket2 { get; set; }



        [Setting, DefaultValue("... always")]
        public string Moonfire { get; set; }

        [Setting, DefaultValue("... always")]
        public string Sunfire { get; set; }

        [Setting, DefaultValue("... always")]
        public string Starsurge { get; set; }

        [Setting, DefaultValue("... always")]
        public string FaerieFire { get; set; }

        [Setting, DefaultValue("... never")]
        public string Typhoon { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string Starfall { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string Incarnation { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string CelestialAlignment { get; set; }

        [Setting, DefaultValue("... always")]
        public string SolarBeam { get; set; }

        [Setting, DefaultValue("... only on 4+ adds")]
        public string Hurricane { get; set; }


        [Setting, DefaultValue("... only on casters")]
        public string BalanceMightyBash { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string BalanceTrents { get; set; }

        [Setting, DefaultValue(25)]
        public int BalanceCatFormMana { get; set; }

        

        [Setting, DefaultValue(55)]
        public int BalanceHealingTouch { get; set; }

        [Setting, DefaultValue(75)]
        public int BalanceRejuvenation { get; set; }

        [Setting, DefaultValue(45)]
        public int BalanceRenewal { get; set; }

        [Setting, DefaultValue(40)]
        public int BalanceBarkskinHealth { get; set; }

        [Setting, DefaultValue(60)]
        public int HealthPotionHealth { get; set; }

        [Setting, DefaultValue(0)]
        public int ManaPotionMana { get; set; }


        [Setting, DefaultValue("... never")]
        public string AstralCommunion { get; set; }

        // Balance Pull

        [Setting, DefaultValue("... automatic")]
        public string BalancePull { get; set; }

        [Setting, DefaultValue("... never")]
        public string BalancePullEntanglingRoots { get; set; }

        [Setting, DefaultValue("... never")]
        public string BalancePullMoonfire{ get; set; }

        [Setting, DefaultValue("... always")]
        public string BalancePullWrath{ get; set; }

        [Setting, DefaultValue("... always")]
        public string BalancePullStarfire { get; set; }

        [Setting, DefaultValue("... always")]
        public string BalancePullStarsurge { get; set; }

        [Setting, DefaultValue("4")]
        public string WildMushroomMinMobs { get; set; }

        [Setting, DefaultValue("3")]
        public string WildMushroomMinDetonate { get; set; }

        [Setting, DefaultValue("... never")]
        public string WildMushrooms { get; set; }

        [Setting, DefaultValue(75)]
        public int BalanceCenarionWard { get; set; }


        // Feral

        [Setting, DefaultValue(40)]
        public int FeralHealingTouch { get; set; }

        [Setting, DefaultValue(40)]
        public int FeralRejuvenation { get; set; }

        [Setting, DefaultValue(45)]
        public int FeralRenewal { get; set; }

        [Setting, DefaultValue(65)]
        public int FeralBarkskinHealth { get; set; }

        [Setting, DefaultValue(75)]
        public int FeralCenarionWard { get; set; }

        [Setting, DefaultValue(60)]
        public int FeralSurvivalInstincts { get; set; }

        [Setting, DefaultValue(60)]
        public int FeralMangleEnergy { get; set; }

        [Setting, DefaultValue("... always")]
        public string Rake { get; set; }

        [Setting, DefaultValue("... always")]
        public string Shred { get; set; }

        [Setting, DefaultValue("... always")]
        public string FeralFaerieFire { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string FeralBerserk { get; set; }

        [Setting, DefaultValue("... always")]
        public string FeralSkullBash { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string FeralThrash { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string Rip { get; set; }

        [Setting, DefaultValue(55)]
        public int RipMinTargetHealth { get; set; }

        [Setting, DefaultValue("5")]
        public string RipMinComboPoints { get; set; }

        [Setting, DefaultValue("... always")]
        public string TigersFury { get; set; }

        [Setting, DefaultValue(30)]
        public int TigersFuryMinEnergy { get; set; }

        [Setting, DefaultValue("... never")]
        public string FeralBearForm { get; set; }

        [Setting, DefaultValue("... always")]
        public string FeralWildCharge { get; set; }

        // Pull
        [Setting, DefaultValue("... automatic")]
        public string FeralPull { get; set; }

        [Setting, DefaultValue("... always")]
        public string FeralPullFaerieFire { get; set; }

        [Setting, DefaultValue("... never")]
        public string FeralPullProwl { get; set; }

        [Setting, DefaultValue("... never")]
        public string FeralPullRavage{ get; set; }

        [Setting, DefaultValue("... always")]
        public string FeralPullPounce{ get; set; }
        

        [Setting, DefaultValue("... on casters and runners")]
        public string FeralMightyBash { get; set; }
        
        [Setting, DefaultValue("... only on adds")]
        public string FeralTrents { get; set; }



        [Setting, DefaultValue("... always")]
        public string SavageRoar { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string FeralIncarnation { get; set; }

        [Setting, DefaultValue("... always")]
        public string IncarnationPounce { get; set; }

        [Setting, DefaultValue("... always")]
        public string IncarnationRavage { get; set; }


        [Setting, DefaultValue("Ferocious Bite")]
        public string Finisher { get; set; }

        [Setting, DefaultValue(30)]
        public int FinisherTargetHealth { get; set; }

        [Setting, DefaultValue("1")]
        public string FinisherComboPoints { get; set; }

        [Setting, DefaultValue("2")]
        public string SavageRoarMaxCP { get; set; }

        [Setting, DefaultValue("... only on 3+ adds")]
        public string FeralDisorientingRoar { get; set; }

        


        // guardian

        
        [Setting, DefaultValue(45)]
        public int MightOfUrsocBearHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string MightOfUrsocBearWhen { get; set; }

        [Setting, DefaultValue("... conditional")]
        public string MightOfUrsocBear { get; set; }

        [Setting, DefaultValue("... on casters and runners")]
        public string GuardianMightyBash { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string GuardianTrents { get; set; }

        [Setting, DefaultValue(40)]
        public int GuardianHealingTouch { get; set; }

        [Setting, DefaultValue(40)]
        public int GuardianRejuvenation { get; set; }

        [Setting, DefaultValue(60)]
        public int GuardianRenewal { get; set; }

        [Setting, DefaultValue(65)]
        public int GuardianBarkskinHealth { get; set; }

        [Setting, DefaultValue(75)]
        public int GuardianCenarionWard { get; set; }

        [Setting, DefaultValue(60)]
        public int GuardianSurvivalInstincts { get; set; }

        [Setting, DefaultValue(40)]
        public int EnrageRage { get; set; }

        [Setting, DefaultValue(60)]
        public int FrenziedRegeneration { get; set; }

        [Setting, DefaultValue(80)]
        public int SavageDefenseHealth { get; set; }

        [Setting, DefaultValue("... always")]
        public string GuardianWildCharge { get; set; }

        [Setting, DefaultValue("... always")]
        public string Lacerate { get; set; }

        [Setting, DefaultValue("... always")]
        public string GuardianMangle { get; set; }

        [Setting, DefaultValue("... never")]
        public string GuardianFaerieFire  { get; set; }

        [Setting, DefaultValue("... always")]
        public string GuardianSkullBash { get; set; }

        [Setting, DefaultValue("... always")]
        public string GuardianThrash { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string GuardianSwipe { get; set; }

        [Setting, DefaultValue("... always")]
        public string SavageDefense { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string GuardianBerserk { get; set; }

        [Setting, DefaultValue("... only on adds")]
        public string GuardianIncarnation { get; set; }

        [Setting, DefaultValue(75)]
        public int MaulRage { get; set; }

        [Setting, DefaultValue("... always")]
        public string Taunt { get; set; }


        // Restoration
        [Setting, DefaultValue(65)]
        public int TranquilityHealth { get; set; }

        [Setting, DefaultValue("3")]
        public string TranquilityCount { get; set; }

        [Setting, DefaultValue("... always")]
        public string Tranquility { get; set; }

        [Setting, DefaultValue(70)]
        public int SwiftmendHealth { get; set; }

        [Setting, DefaultValue(90)]
        public int WildGrowthHealth { get; set; }

        [Setting, DefaultValue("2")]
        public string WildGrowthCount { get; set; }

        [Setting, DefaultValue("... always")]
        public string WildGrowth { get; set; }


        [Setting, DefaultValue("... always")]
        public string ForceOfNatureResto { get; set; }

        [Setting, DefaultValue("... always")]
        public string BattleResTank { get; set; }

        [Setting, DefaultValue("... always")]
        public string ResPlayers { get; set; }



        [Setting, DefaultValue(70)]
        public int SwiftmendTankHealth { get; set; }

        [Setting, DefaultValue(55)]
        public int HealingTouchTankHealth { get; set; }

        [Setting, DefaultValue(95)]
        public int RejuvenationTankHealth { get; set; }
        
        [Setting, DefaultValue(65)]
        public int RegrowthTankHealth { get; set; }
        
        [Setting, DefaultValue("... always")]
        public string LifebloomTank { get; set; }


        

        [Setting, DefaultValue(70)]
        public int RegrowthHealth { get; set; }

        [Setting, DefaultValue(40)]
        public int HealingTouchHealth { get; set; }

        [Setting, DefaultValue(55)]
        public int NourishHealth { get; set; }

        [Setting, DefaultValue(95)]
        public int RejuvenationHealth { get; set; }

        
    }
}
